/*
 *    This file is part of SSHTunneler.
 *
 *    Copyright 2009 Jean-Sebastien Gelinas <calestar@gmail.com>
 *
 *    SSHTunneler is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    SSHTunneler is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU General Public License for more details.
 *
 *    You should have received a copy of the GNU General Public License
 *    along with SSHTunneler.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
package sshtunneler.library;

import java.util.ArrayList;
import java.util.List;

public abstract class ServerContainer<E extends Server> {

	private List<E> servers = new ArrayList<E>();

	public ServerContainer() {
	}

	public List<E> getServers() {
		return this.servers;
	}

	public void removeAllServers() {
		// Clone and remove
		List<E> cp = new ArrayList<E>(this.getServers());

		for (E s : cp) {
			this.removeServer(s);
		}
	}

	public List<Tunnel> getTunnels() {
		List<Tunnel> ret = new ArrayList<Tunnel>();
		for (E s : this.servers) {
			ret.addAll(s.getTunnels());
		}
		return ret;
	}

	public void addServer(E newServer) {
		this.servers.add(newServer);
	}

	public void removeServer(E server) {
		this.servers.remove(server);
	}
}
